System and method for determining a presence state of a user

ABSTRACT

Presence information associated with a presence entity ( 102 ) is received. A composition rule associated with the presence information is also received. The composition rule is applied to the presence information in order to determine a presence state for the presence entity ( 102 ).

FIELD OF THE INVENTION

The field of the invention relates to enhancing the productivity ofusers in communication networks.

BACKGROUND OF THE INVENTION

Watchers in presence-enabled networks typically examine the presencestate of presence entities (e.g., human users or help desks) operatingwithin these networks in order to determine whether these presenceentities are available or unavailable to receive communications. Thepresence state is typically transmitted to the watcher device by apresence service and, based upon this state, contact with the presenceentity may be either encouraged or discouraged.

In some situations, information relating to the presence state of aparticular user can be published by multiple unsynchronized sources,which sometimes leads to conflicts. For instance, a user might beassociated with multiple presence-enabled devices (e.g., a personalcomputer and a cellular telephone) as well as network entities (e.g. PoCserver, publishing PoC availability based on registration state) allpublishing information on behalf of the user. One application (e.g., thecellular phone) might believe that the user is in their vehicle whilethe other application (e.g., the personal computer) might believe thatthe user is at the office.

Previous systems used fixed and standardized composition rules in anattempt to resolve presence conflicts. Composition rules are defined perpresence information “type”. For example, a user's activity/location isa “person” type of element. These rules were programmed into thepresence service and/or watcher, and could not be modified. In oneexample of a fixed composition rule, the latest presence informationpublished was the information that was deemed the most reliable and wasthe information used to determine the presence state.

Unfortunately, these previous approaches often produced erroneousresults. For instance, a user might drive to work in the vehicle earlyin the morning and bring their cellular phone. The cellular phone withthe user would publish presence information to a presence serviceindicating that the user was in their vehicle and on their way to work.At a later time, an application (e.g., a desktop calendar) running on apersonal computer at the office would assume the user was at the officeand automatically publish this information to the presence service.However, the user might be late for work and still in their vehicle whenthe application at the personal computer published its information.Since one set of presence information indicated that the user was at theoffice while the other information indicated that the user was in theirvehicle, a conflict existed. Using the “latest publication” compositionrule to resolve the conflict produced the result that the user was atthe office, since this information was the latest received.Unfortunately, this result was incorrect because the user was actuallylate for work and still in their vehicle. Thus, in this example,communications destined for the user were erroneously directed to theoffice of the user and contact with the user could not be established.

As a consequence of the above-mentioned problems, user frustration withthe system increased as communications were incorrectly routed and/orprohibited. Since in many situations the problems occurred in a workenvironment, worker productivity was also adversely affected.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a system for determining a presence stateaccording to the present invention;

FIG. 2 is a block diagram of a presence compositor according to thepresent invention;

FIG. 3 is a call flow diagram of an approach for determining a presencestate according to the present invention;

FIG. 4 is a call flow diagram of an approach for determining a presencestate according to the present invention; and

FIG. 5 is a call flow diagram of an approach for determining a presencestate according to the present invention.

Skilled artisans will appreciate that elements in the figures areillustrated for simplicity and clarity and have not necessarily beendrawn to scale. For example, the dimensions and/or relative positioningof some of the elements in the figures may be exaggerated relative toother elements to help to improve understanding of various embodimentsof the present invention. Also, common but well-understood elements thatare useful or necessary in a commercially feasible embodiment are oftennot depicted in order to facilitate a less obstructed view of thesevarious embodiments of the present invention. It will further beappreciated that certain actions and/or steps may be described ordepicted in a particular order of occurrence while those skilled in theart will understand that such specificity with respect to sequence isnot actually required. It will also be understood that the terms andexpressions used herein have the ordinary meaning as is accorded to suchterms and expressions with respect to their corresponding respectiveareas of inquiry and study except where specific meanings have otherwisebeen set forth herein.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

A system and method determines the presence state of a presence entity(e.g., a human user or help desk) by receiving presence information andan associated composition rule from a single or from multiple presencesources. A presence compositor applies the composition rule to theinformation to resolve conflicts and obtain a single coherent presencestate. Since the composition rule need not be fixed, but may changeaccording to the reliability of the source of the information, moreaccurate presence state determinations can be made.

In many of these embodiments, presence information associated with apresence entity (e.g., human user) is received, for example, at apresence service (e.g., presence server) which stores and distributesthe information to authorized watchers who request presence informationabout the user. The presence information may indicate a characteristicof a user such as the user's availability to receive communication, theuser's activity, the geographical location of a user, the location typeof a user, or whether the user is logged into a computer system. Otherexamples of presence information are possible.

A presence client publishes a presence state and a set of associatedcomposition rules, which are used to resolve conflicts. The compositionrule associated with the presence information is received by a presencecompositor. The presence compositor (e.g., a function within thepresence service or watcher) applies the composition rule to thepresence information in order to determine a single coherent presencestate for the presence entity. The composition rule may be based upon atleast one characteristic of the system such as an override prioritylevel, the value of a presence information element of the presenceentity or the value of a presence information element of a watcher. Thepresence state may be available, unavailable, or conditionally available(e.g., available/unavailable, but qualified by certain conditions suchas “if work related”). Other examples of composition rules and presencestates are possible.

The presence information can be received from multiple sources or from asingle source. For example, first presence information associated withthe presence entity may be received that is generated by a firstpresence source and second presence information associated with thepresence entity may be received that is generated by a second presencesource. The first presence information may contain a conflict with thesecond presence information and the composition rule may be applied toresolve the conflict and determine the presence state for the presenceentity. If a watcher receives presence state and composition rules, thenthe rules are applied to determine the presence state to be displayed tothe watcher. If after applying rules there is still a conflict, then adefault composition policy is applied to remaining presence data thatare in conflict. If watcher does not understand a rule, then the rule isignored (i.e. rule is assumed to be met). In a preferred embodiment, auser publishes rules that can be automatically processed by the watcher.Rules are expressed in XML, and are associated with a set of publishedpresence information. The advantage is that if the rules areautomatically processed, the “conflict” becomes transparent to the userwho is watching.

Rather than having content rules configured statically into the presenceserver, the presence source dynamically creates and pushes the rules tothe watcher, where the rules are the processed. This is advantageousbecause: a) the source (not the presence server) is often the bestsuited for creating rules, since it alone knows the precise semantics ofthe information and the nature of the device publishing it, and b) thewatcher (not the presence server) is often the best suited forprocessing the rules, because knowledge of the conflicts and rulesprovide the watcher with a richer picture of the presence state of theuser.

In many of these embodiments, various types of textual information maybe displayed to a user who is watching the presence entity. Forinstance, textual information relating to the composition rule may bedisplayed. In another example, the composition rule may itself betextual information, which may be then displayed to a user. In stillanother example, the textual information may only be displayed to a userwhen a presence conflict exists. In yet another example, textualinformation relating to the composition rule may be displayed to a userwhen the presence state is a particular value, such as conditionallyavailable.

Thus, approaches are described that more accurately determine thepresence states of presence entities. These approaches are easy and costeffective to implement, and since they substantially reduce the numberof inaccurate presence state determinations, the user experience withthe system is enhanced.

Referring now to FIG. 1, one example of a system for determining thepresence states of presence entities is described. A user 102 is apresence entity that has associated with it a presence source 104 and apresence source 106. In addition, a user 118 is a presence entity thathas an associated presence source 108 and a user 120 is a presenceentity that has an associated presence source 122.

The presence sources 104, 106, 108, and 122 may be any type of device orapplication operating on a device. For instance, the presence sources104, 106, 108, and 122 may be cellular phones, personal computers,pagers, or personal digital assistants. In another example, the presencesources 104, 106, 108, and 122 may be applications such as calendarapplications running on personal computers. Other examples of presencesources are possible.

The presence sources 104, 106, 108, and 122 are logical entities andprovide presence information associated with the presence entity, suchas a person or help desk, to a presence service 110. Presence sourcesassociated with the same presence entity may supply conflictinginformation about that entity. For instance, the presence sources 104and 106 may supply conflicting presence information relating to the user102 to the presence service 110.

User 118 has an associated watcher 124, and user 120 has an associatedwatcher 126. The watchers 124 and 126 may be any type of device orapplication operating on a device. For instance, watchers 124 and 126may be cellular phones, personal computers, pagers, or personal digitalassistants. Also, watchers 124 and 126 may be operating on the sameapplication/device as presence source 108 and 122, respectively, or maybe operating on separate applications/devices. Other examples ofwatchers are possible. The watchers 124 and 126 are logical entities,and request presence information associated with a presence entity froma presence service 110.

Referring now to FIG. 2, a presence compositor 212 includes a receiver216 and a controller 214. The presence compositor 212 may be includedwithin a presence service (such as presence service 110 of FIG. 1), orwithin a watcher (such as within watcher 124 or 126 of FIG. 1). Thecontroller 214 is programmed to receive presence information and acomposition rule from presence sources (such as from presence sources104, 106, 108 and 122 when included within presence service 110) or fromthe presence service (such as presence service 110 of FIG. 1 whenincluded in watcher 124 or 126). The controller 214 is furtherprogrammed to apply the composition rule to the presence information inorder to determine a presence state for one of the presence entities.Examples of the presence state include available, unavailable, orconditionally available. Other examples of presence states are possible.After the presence state is determined, this state may be presented tousers.

The composition rule may be based upon a characteristic such as anoverride priority level, a presence information element of the presenceentity, or a presence information element of a watcher. Other examplesare possible.

Various types of textual information may also be displayed to users ofthe system having an associated watcher. For instance, textualinformation relating to or describing the composition rule may bedisplayed at the watcher. In another example, the composition rule mayitself be textual information, and the rule can be displayed at thewatcher. In still another example, textual information describing apresence conflict may be displayed at the watcher when the presenceconflict exists. In another approach, textual information relating tothe composition rule may be displayed at the watcher when the presencestate is determined to be a particular value, such as conditionallyavailable.

In one example of the operation of the system of FIG. 1, at 8:59 am, afirst user (user 102) indicates through the presence client in theirmobile phone (presence source 104) that their activity is “in-transit”and place-type is “vehicle.” Because this information is manuallyentered (e.g., via the user interface of the mobile phone) the presenceclient automatically includes an indication that this presence update isthe authority for the activity and place-type of the first user (user102).

At 9:00 am, a calendar application (presence source 106) for the firstuser (user 102) publishes that the activity for the first user (user102) is “appointment” and that the place type is “office.” Since thefirst user (user 102) is not logged in to their computer, the calendarapplication (presence source 106) is not the authority.

At 9:02 am, a second user (user 118) has an existing subscription to thepresence information of the first user (user 102). The second user (user118) opens the presence-enabled device to see the presence status of thefirst user (user 102). The device (watcher 124) associated with thesecond user (user 118) has received notifications with presenceinformation from both presence sources (the mobile of the first user andthe calendar application of the first user) via the presence service110. Based upon the composition rule published by the mobile phone ofthe first user (user 102), the second user (user 118) sees that thefirst user (user 102) is in-transit and still in their vehicle.

At 9:20 am, the first user (user 102) arrives at the office. The firstuser (user 102) can now synchronize their presence information. Forexample, when the first user (user 102) logs into their personalcomputer, the presence application (presence source 106) in the personalcomputer can publish that the first user (user 102) is in the office andinclude an indication that the calendar application (presence source106) is now the authority for the activity and place-type (since thefirst user has logged into their personal computer).

In another example of the operation of the system of FIG. 1, the firstuser (user 102) is at the office and wishes to be available tocolleagues only if they are also in the office. Using the interface ofthe presence enabled device, the first user (user 102) sets theirpresence status to available and then selects conditional and enters orselects “at the office.” This composition rule indicates that the firstuser (user 102) is available if the location of the watcher is at theoffice. This rule is published by the presence enabled device (presencesource 104) to the presence service 110 and stored.

The second user (user 118) and the third user (user 120) are colleaguesof the first user (user 102). They have subscribed to the presenceinformation of the first user (user 102) and they are notified of theconditional presence state of the first user (user 102). The second user(user 118) wishes to call the first user (user 102). The device (watcher124) associated with the second user (user 118) knows that the seconduser (user 118) is at the office and sees the first user (user 102) as“available.” The fact that the first user (user 102) is conditionallyavailable may be invisible to the second user if the device (watcher124) evaluates the composition rule automatically. The first user (user102) is available for calls from the second user (user 118) immediately.

The third user (user 120) then wishes to call the first user. The device(watcher 126) of the third user (user 120) knows that the third user(user 120) is not at the office or, alternatively, may not know theirlocation. The third user (user 120) sees the first user (user 102) as“conditionally available” or alternatively as “unavailable” since thefact that the first user (user 102) is conditionally available may beinvisible to the third user (user 120) (e.g., if watcher 126 evaluatesthe composition rule automatically). If the third user (user 120) wishesto call the first user (user 102), he selects the first user (user 102)in his contact list and his user interface may display a textual message“Please call only if you are at the office.” The third user (user 120)knows to call again later when the third user (user 120) is at theoffice.

Referring now to FIG. 3, one example of an approach for determining apresence state of a presence entity is described. In this example,conflicting information and composition rules from two separate presencesources associated with a presence entity are resolved. At step 302,presence information and a composition rule are sent from a firstpresence source associated with User 1 to a presence service accessibleby User 2. For instance, a mobile telephone associated with User 1 maysend this information to a presence service accessible by User 2.

At step 304, presence information and a composition rule may be sentfrom a second presence source associated with User 1. For example,presence information and a compositional rule may be sent from anapplication running on a personal computer associated with User 1.

At step 305, the presence information and associated composition rulesfrom the first and second presence sources may be sent by the presenceservice to a watcher associated with User 2, who has an existingpresence subscription to User 1.

At step 306, a presence state is determined and the conflictinginformation is resolved. For instance, the rule received from the firstsource may indicate that the first source is the authority fordetermining the state and the composition rule received from the secondsource may indicate that it is not the authority. At step 308, anyneeded information may be displayed to the user. For example, thepresence state may be displayed, and/or information relating to thecomposition rule may be displayed indicating to the second user that aconflict exists.

Referring now to FIG. 4, another approach for determining a presencestate of a presence entity is described. In this example, conditionalpresence information and a composition rule (e.g., describing thecondition) from a single presence source are resolved by multiplewatchers.

At step 402, conditional presence information and a composition ruledescribing a condition is sent from the presence source associated withUser 1 to a presence service accessible by User 2 and User 3. Forinstance, the composition rule may be that User 1 is available if thewatcher is at work.

At step 403, the presence information and associated composition rulefrom the presence source is sent by the presence service to a watcherassociated with User 2, who has an existing presence subscription toUser 1. At step 405, the same presence information and associatedcomposition rule from the presence source may be sent by the presenceservice to a watcher associated with User 3, who may also have anexisting presence subscription to User 1.

At step 406, the presence state of User 1 that is visible to User 2 isdetermined and at step 408 the presence state of User 2 that is visibleto User 3 is determined. Using the previous example, if either user isat work, then they would see the state of User 1 as available. On theother hand, if User 2 or User 3 were not at work, they would see User 1as unavailable or conditionally available and a textual message may bedisplayed telling them to try to contact User 1 when they are at work.

Referring now to FIG. 5, still another example of an approach fordetermining a presence state of a presence entity is described. In thisexample, presence information and a composition rule is supplied to awatcher where the rule is expressed by text displayed to the watcher.

At step 502, presence information and a composition rule are sent from apresence source associated with User 1 to a presence service accessibleby User 2. At step 403, the presence information and associatedcomposition rule from the presence source is sent by the presenceservice to a watcher associated with User 2, who has an existingpresence subscription to User 1. At step 504, the composition rule isdisplayed as text to User 2. For example, the rule may be “Contact User1 only when you are at the Office.” In this way, the rule itself ispresented in textual form to User 2.

Thus, approaches are described that allow more accurate presence statedeterminations to be made. These approaches are easy to implement andsince they reduce the number of inaccurate presence statedeterminations, the experience of users with the system is enhanced.

Those skilled in the art will recognize that a wide variety ofmodifications, alterations, and combinations can be made with respect tothe above described embodiments without departing from the spirit andscope of the invention, and that such modifications, alterations, andcombinations are to be viewed as being within the scope of theinvention.

1. A method for determining a presence state of a presence entitycomprising the steps of: receiving presence information associated witha presence entity; receiving a composition rule associated with thepresence information; displaying textual information relating to thecomposition rule to a user only when a presence conflict exists; andapplying the composition rule to the presence information in order todetermine a presence state for the presence entity.
 2. The method ofclaim 1 wherein receiving presence information comprises receiving firstpresence information associated with the presence entity generated by afirst presence source and second presence information associated withthe presence entity generated by a second presence source and whereinthe first presence information contains a conflict with the secondpresence information and wherein applying the composition rule comprisesapplying the composition rule to resolve the conflict and determine thepresence state for the presence entity.
 3. The method of claim 2 whereinapplying the composition rule comprises applying a composition rulebased upon at least one characteristic selected from a group comprising:an override priority level; a presence information element of thepresence entity; and a presence information element of a watcher.
 4. Themethod of claim 1 wherein receiving presence information comprisesreceiving first and second presence information associated with thepresence entity generated by a single presence source, wherein the firstpresence information contains a conflict with the second presenceinformation, and wherein applying the composition rule comprisesapplying the composition rule to resolve the conflict and determine thepresence state of the presence entity.
 5. The method of claim 4 whereinapplying the composition rule comprises applying a composition rulebased upon at least one characteristic selected from a group comprising:a presence information element of the presence entity; and a presenceinformation element of a watcher.
 6. The method of claim 1 whereinapplying the composition rule comprises applying the composition rule tothe presence information in order to determine a presence state, thepresence state being selected from a group comprising available,unavailable, and conditionally available.
 7. The method of claim 6further comprising displaying textual information relating to thecomposition rule to a user when the presence state is conditionallyavailable.
 8. The method of claim 1 wherein receiving presenceinformation comprises receiving presence information indicative of acharacteristic, the characteristic selected from a group comprising: anavailability of a user to receive communication, an activity of a user,a geographical location of a user; a location type of a user; andwhether the user is logged into a computer system.
 9. The method ofclaim 1, further comprising the step of generating presence informationcomprising the substeps of: forming a presence message, the presencemessage comprising presence information and at least one compositionrule for determining a presence state; and transmitting the presencemessage to a presence service.
 10. The method of claim 9 wherein forminga presence message comprises forming a message comprising a compositionrule, the rule based upon at least one characteristic selected from agroup comprising: an override priority level; a presence informationelement of the presence entity; and a presence information element of awatcher.
 11. The method of claim 9 wherein forming a presence messagecomprises forming a composition rule that is a textual message that canbe displayed to a user.
 12. A device for determining a presence statecomprising: a receiver having an input; and a controller coupled to thereceiver, the controller being programmed to receive presenceinformation and a composition rule from an element associated with apresence entity at the input of the receiver, the controller beingfurther programmed to display textual information relating to thecomposition rule to a user on a display only when a presence conflictexists and to apply the composition rule to the presence information inorder to determine a presence state for the presence entity.
 13. Thedevice of claim 12 wherein the element associated with the presenceentity is a presence source.
 14. The device of claim 12 wherein theelement associated with the presence entity is a presence server. 15.The device of claim 12 wherein the receiver receives, via the input,first presence information associated with the presence entity generatedby a first presence source and second presence information associatedwith the presence entity generated by a second presence source andwherein the first presence information contains a conflict with thesecond presence information and wherein applying the composition rulecomprises applying the composition rule to resolve the conflict anddetermine the presence state for the presence entity.
 16. The device ofclaim 12 wherein the received presence information comprises first andsecond presence information associated with the presence entitygenerated by a single presence source, wherein the first presenceinformation contains a conflict with the second presence information,and wherein the controller is programmed to apply the composition ruleto resolve the conflict and determine the presence state of the presenceentity.